using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.ComponentModel;

namespace produccion.clases
{

   public  class CLSDETENT : ObservableObject
    {

MDOgeneral mod = new MDOgeneral();

#region Metodos basicos tabla

    public List<CLSDETENT> listadDetEnt()
    {
        try
        {
            string query = "select TIPENT_DEN,HOJNRO_DEN,CODMAT_DEN,CODCOL_DEN,CANPRO_DEN,COSPRO_DEN,NROORDP_DEN from DETENTP where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "'";
            DataTable val = mod.consulta(query);
            List<CLSDETENT> listadDet = new List<CLSDETENT>();
            foreach (DataRow r in val.Rows)
            {
                listadDet.Add(new CLSDETENT 
                {
                    TIPENT_DEN = r["TIPENT_DEN"].ToString(),
                    HOJNRO_DEN = r["HOJNRO_DEN"].ToString(),
                    CODMAT_DEN = r["CODMAT_DEN"].ToString(),
                    CODCOL_DEN = r["CODCOL_DEN"].ToString(),
                    CANPRO_DEN = Convert.ToDouble(r["CANPRO_DEN"].ToString()),
                    COSPRO_DEN = Convert.ToDouble(r["COSPRO_DEN"].ToString()),
                    NROORDP_DEN = r["NROORDP_DEN"].ToString()
                });
            }
            return listadDet;
        }
        catch (Exception e) { throw e; }
    }
    public DataTable conDetEnt()
    {
        try 
        {
            string query = "select (CODMAT_DEN||CODCOL_DEN) as CODIGO,NROORDP_DEN,(select NOMMAT_MAT from MAEMAT where CODMAT_MAT=CODMAT_DEN) NOMMAT_MAT, (select NOMUNI_EUN FROM ENCUNIP where CODUNI_EUN=(select UNICOM_MAT from MAEMAT where CODMAT_MAT=CODMAT_DEN)) as NOMUNI_EUN,CANPRO_DEN, COSPRO_DEN from DETENTP  where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "'";
            return mod.consulta(query);
        }catch(Exception ex){ throw(ex);}
    }

    public DataTable consRImpEnt() 
    {
        try 
        {
            string query = "select CODMAT_DEN as CODIGO, (select trim(NOMMAT_MAT) from maemat where CODMAT_MAT=CODMAT_DEN) as DESCRIPCION, (select trim(NOMCOL_COL) from maecolp where CODCOL_COL=CODCOL_DEN) as COLOR, (select trim(NOMUNI_EUN) from maemat,encunip where coduni_eun=unicom_mat and codmat_mat=CODMAT_DEN) as UNIDAD, COSPRO_DEN as COSTO,  CANPRO_DEN as CANTIDAD, (COSPRO_DEN* CANPRO_DEN) as SUBTOTAL, NROORDP_DEN as ORDPRO from DETENTP where HOJNRO_DEN='"+HOJNRO_DEN+"' and TIPENT_DEN='"+TIPENT_DEN+"'";
            return  mod.consulta(query);
        }
        catch (Exception ex) { throw ex; }
    }

    public void consultar() 
    {
        try
        {
            string query = "select TIPENT_DEN,HOJNRO_DEN,CODMAT_DEN,CODCOL_DEN,CANPRO_DEN,COSPRO_DEN,NROORDP_DEN from DETENTP where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "' and  CODMAT_DEN='" + CODMAT_DEN + "' and CODCOL_DEN='" + CODCOL_DEN + "'";
            DataTable val = mod.consulta(query);
            if (val.Rows.Count > 0)
            {
                this.TIPENT_DEN = val.Rows[0]["TIPENT_DEN"].ToString();
                this.HOJNRO_DEN = val.Rows[0]["HOJNRO_DEN"].ToString();
                this.CODMAT_DEN = val.Rows[0]["CODMAT_DEN"].ToString();
                this.CODCOL_DEN = val.Rows[0]["CODCOL_DEN"].ToString();
                this.CANPRO_DEN= Convert.ToDouble(val.Rows[0]["CANPRO_DEN"]);
                this.COSPRO_DEN= Convert.ToDouble(val.Rows[0]["COSPRO_DEN"]);
                this.NROORDP_DEN= val.Rows[0]["NROORDP_DEN"].ToString();

                EXISTE = true;
                CAMBIO = false;
            }
            else
            {
                 EXISTE = false;
            }
        }
        catch (Exception e) { throw e; }
    }

    public int actualizar()
    {
        try
        {
            string query = "update DETENTP set CANPRO_DEN=" + CANPRO_DEN + ",COSPRO_DEN=" + COSPRO_DEN + ",NROORDP_DEN='" + NROORDP_DEN + "' where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "' and  CODMAT_DEN='" + CODMAT_DEN + "' and CODCOL_DEN='" + CODCOL_DEN + "'";
            return mod.comando(query);
        }
        catch (Exception e) { throw e; }
    }

    public int insertar()
    {
        try
        {
            if (String.IsNullOrEmpty(HOJNRO_DEN) == true) { HOJNRO_DEN = " "; }//FJRF - Le quitamos el  null
            string query = "insert into DETENTP (TIPENT_DEN,HOJNRO_DEN,CODMAT_DEN,CODCOL_DEN,CANPRO_DEN,COSPRO_DEN,NROORDP_DEN) values ('" + TIPENT_DEN + "','" + HOJNRO_DEN + "','" + CODMAT_DEN + "','" + CODCOL_DEN + "',"+CANPRO_DEN+","+COSPRO_DEN+",'"+NROORDP_DEN+"')";
            return mod.comando(query);
        }
        catch (Exception e) { throw e; }
    }

    public int eliminar()
    {
        try
        {
            string query = "delete from DETENTP where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "' and  CODMAT_DEN='" + CODMAT_DEN + "' and CODCOL_DEN='" + CODCOL_DEN + "'";
            return mod.comando(query);
        }
        catch (Exception e) { throw e; }
    }

    public Boolean existe()
    {
       try
       {
           string query = "select count(*) from DETENTP where TIPENT_DEN='" + TIPENT_DEN + "' and HOJNRO_DEN='" + HOJNRO_DEN + "' and  CODMAT_DEN='" + CODMAT_DEN + "' and CODCOL_DEN='" + CODCOL_DEN + "'";
           return mod.consulta(query).Rows[0][0].Equals("0") ? false : true;
       }
       catch (Exception e) { throw e; }
    }


#endregion
        
#region  Propiedades tabla MAECIUP
    
    private string _TIPENT_DEN;
    public string TIPENT_DEN
    {
        get { return _TIPENT_DEN;}
        set { _TIPENT_DEN=value; RaisePropertyChangedEvent("TIPENT_DEN"); }
    }

    private string _HOJNRO_DEN;
    public string HOJNRO_DEN
    {
        get { return _HOJNRO_DEN;}
        set { _HOJNRO_DEN=value; RaisePropertyChangedEvent("HOJNRO_DEN"); }
    }

    private string _CODMAT_DEN;
    public string CODMAT_DEN
    {
        get { return _CODMAT_DEN;}
        set { _CODMAT_DEN=value; RaisePropertyChangedEvent("CODMAT_DEN"); }
    }

    private string _CODCOL_DEN;
    public string CODCOL_DEN
    {
        get { return _CODCOL_DEN;}
        set { _CODCOL_DEN=value; RaisePropertyChangedEvent("CODCOL_DEN"); }
    }

    private double _CANPRO_DEN;
    public double CANPRO_DEN
    {
        get { return _CANPRO_DEN;}
        set 
        {
            if (_CANPRO_DEN != value) 
                CAMBIO = true; 
            _CANPRO_DEN=value;
            RaisePropertyChangedEvent("CANPRO_DEN");
        }
    }
    
    private double _COSPRO_DEN;
    public double COSPRO_DEN{
        get { return _COSPRO_DEN;}
        set 
        {
            if (_COSPRO_DEN != value) 
                CAMBIO = true; 
            _COSPRO_DEN=value;
            RaisePropertyChangedEvent("COSPRO_DEN");
        }
    }

    private string _NROORDP_DEN;
    public string NROORDP_DEN
    {
        get { return _NROORDP_DEN; }
        set {
            if (_NROORDP_DEN != value)  
                CAMBIO = true; 
            _NROORDP_DEN = value;
            RaisePropertyChangedEvent("NROORDP_DEN");
        }
    }
 
    private Boolean _CAMBIO=false;
    public Boolean CAMBIO
    {
        get { return _CAMBIO; }
        set { _CAMBIO = value; RaisePropertyChangedEvent("CAMBIO"); }
    }

    private Boolean _EXISTE=false;
    public Boolean EXISTE
    {
        get { return _EXISTE; }
        set { _EXISTE = value; RaisePropertyChangedEvent("EXISTE"); }
    }

#endregion  

      }
}
